package com.techfengs.chapter03;

public class FloatDetail {
  public static void main (String[] args) {
    // Java的浮点类型常量默认为double型
    // 声明float类型常量须后加'f'或'F'
    // float num1 = 1.1;
    // ×
    float num2 = 1.1F;
    // √
    System.out.println(num2);
    double num3 = 1.1;
    // √
    System.out.println(num3);
    double num4 = 1.1F;
    // √
    System.out.println(num4);

    // 十进制数形式
    double num5 = .123;
    // √
    System.out.println(num5);

    // 科学计数法形式
    double num6 = 5.12e2;
    System.out.println(num6);
    // √
    double num7 = 5.12e-3;
    System.out.println(num7);
    // √

    // 通常情况下应使用double类型，因为它比float类型更精确
    double num9 = 2.1234567851;
    System.out.println(num9);

    float num10 = 2.1234567851F;
    System.out.println(num10);

    // 浮点数使用陷阱
    double num11 = 2.7;
    System.out.println(num11);
    double num12 = 8.1/3;
    System.out.println(num12);

    // 正确的判断两个浮点数是否相等得方法
    double x = Math.abs(num11-num12);
    if (x<0.000001) {
      System.out.println("num11和num12相等");
    }
  }
}
